The present invention relates to data processing systems. More particularly, the present invention relates to groupware environments.
The use and popularity of computer systems has seen a steady increase since around the middle of the twentieth century. This trend has been fueled by many different advances in computer system technology (e.g., the invention of random access memory in the 1950s and the introduction of the personal computer in the 1980s). One of the more recent advances in computer system technology is called groupware.
Groupware, which is also sometimes called collaborative computing or collaborative information processing, generally involves specialized computer system technology that is designed to promote efficiency by helping groups of computer users work together to achieve a common goal. While groupware can involve differing pieces of computer system technology, this patent involves a computer program (software) that allows controlled access to a single work product by multiple users. This type of software is sometimes called group-writing software. A good example of the use of group-writing software is its use for the joint production of a new text book. Multiple users simultaneously work together to make changes and additions to the book during production. The changes and additions, which can be in the form of text, graphics, and/or photographs, are instantaneously made available to each member of the team. The group-writing software is used to control each team member""s access to the book while informing the other team members of what changes are being made so that they can best coordinate their joint effort. (We use the term collaborative users to describe the users that work together on a joint work product.)
Just as there have been advances in computer system technology, there have also been advances in groupware technology. One such advance is the use of telephone equipment to allow collaborative users to discuss the joint product as they work. The discussion is typically carried out via a conference call that is controlled by the group-writing software. While the combination of conference call technology with groupware provides an intuitive advantage to collaborative users, current groupwriting software of this type has one significant shortcoming. This being that current group-writing software does not control (or provide the ability to control) what each user is able to hear. Every user hears every other user, no matter whether such communication is necessary or appropriate. This xe2x80x9ceveryone talking at oncexe2x80x9d environment is not only annoying, but it amounts to a serious efficiency problem. At the core of this problem is the fact that today""s conference call-based, group-writing software does not accurately model real life. When team members discuss a joint project, they may well occasionally do so as a team, but more often than not, team members end up discussing the joint project in smaller groups (e.g., two, three, etc.). Current group-writing software, however, forces its users to participate in a single conversation, even at times when it would be more efficient to work together and converse in smaller groups.
Groupware technology will never fully realize its potential without a groupware mechanism that better approximates how teams naturally collaborate to accomplish a common goal.
The groupware mechanism of the present invention is primarily composed of two elements, a groupwriter daemon and one or more groupwriter client processes. The groupwriter daemon can be thought of as a server process, while the groupwriter client processes (as their name suggests) can be considered clients relative to the groupwriter daemon.
The groupwriter daemon handles user requests to join one of the groupware sessions for which it is responsible. There is one groupware session for each groupware object (e.g., a document or other object) that is currently being worked on by a set of collaborative users. The groupwriter daemon also routes voice and data messages between client processes. The client processes, meanwhile, are responsible for providing the subconversation capabilities of the present invention, and for providing users with control over the subconversations. We use the term subconversation to refer to conversations that take place between subsets of collaborative users that are working on a particular groupware object.
The mechanisms of the present invention model real life by providing these subconversations through several different, yet complimentary, features. One feature is referred to as conversation separation. When enabled by a user, conversation separation is used to create subconversations by identifying groups of users that are speaking with one another. Another user configurable feature is referred to as distance recognition. Distance recognition creates subconversations by considering the logical distance between users within a groupware object. For example, if users A, B, and C are all editing the same general portion of a document, the present invention assumes that the three users will want to be able to talk with one another. Of course, the opposite is true where users are not close to one another within the object. A feature that is related to distance recognition is referred to as xe2x80x9cpriority conversation.xe2x80x9d If enabled, priority conversation maintains a user within a subconversation as the user moves away from the location of the other users so long as the user that is moving away continues to participate in the subconversation.
In addition to providing the above-mentioned automatic features, the present invention also allows the user to override these automatic features through explicit user control and to see which other users are able to hear them (i.e., via presentation of a xe2x80x9chear listxe2x80x9d).